1. Field of the Invention
The present invention relates to information processing in the playing back of video contents.
2. Description of the Related Art
Using a web browser, it is possible to view a video provided by a video distribution service. A user can also use a live video streaming service which allows the streaming of, in real time, a video being captured by the user. Services associated with videos have become familiar to the user. However, video data generally has a large data size. When the user wants to play back only the middle part of a video, it takes a long time to download contents and to start playback.
In recent years, a Media Fragments URI technique (for example, http://www.w3.org/TR/media-frags/) compliant with the World Wide Web Consortium (W3C) standard has been receiving attention. According to this technique, it is possible to obtain only some of the video contents (to be referred to as a fragment video hereinafter) from a server based on a uniform resource identifier (to be referred to as a fragment URI) including a fragment description. If it is possible to obtain a fragment video, the user can obtain only part of a video with a large data size, such as a movie, of his or her interest, and play it back in a short time.
The URI of a video v1.ogv distributed by a host having a name “sample.org” using HTTP (Hyper Text Transfer Protocol) is described as “http://sample.org/v1.ogv”. When this URI is designated, the web browser transmits an HTTP GET request to the host “sample.org”, and acquires binary data of the video v1.ogv as a response from a server to play it back.
A fragment URI “http://sample.org/v1.org#t=10,20” represents part of the video with a starting point set as 10 sec and an ending point set as 20 sec. When this URI is designated, the web browser extracts a fragment description “#t=10,20”, sets the fragment description in an HTTP Range header as follows, and transmits a GET request to the server.
GET /v1.ogb HTTP/1.1Host: sample.orgAccept: video/*Range: t:npt=10-20 :
Upon receiving the request, the server analyzes the value of the Range header of the request, and extracts a description “10-20” indicating part of the video. The server sets, as follows, in a response header “Content-Range-Mapping”, the time interval of a fragment video to be transmitted and the byte range of the video to be transmitted, and transmits the binary data of the video to a client (web browser).
  HTTP/1.1 206 Partial Content  Content-Type: video/ogg  Content-Range-Mapping: {t:npt 10.5-20.5}={bytes1234-2345/10000}   :  (binary data)
Furthermore, it is possible to form a collection of videos including a plurality of fragment videos by combining a plurality of fragment URIs. An HTML description example of a given collection of videos is as follows, the collection of videos is defined using, as a container, a <videos> element belonging to a name space “http://sample.org”, and each fragment video is referred to using a <video> element.
  <html>   <head><title>sample</title></head>   <body>    <x:videos xmlns:x=“http:/sample.org”>     <video src=“http://sample.org/v1.ogv#t=10,20”/>     <videosrc=“http://sample.org/v2.ogv#t=100,200”/>     <video src=“http://sample.org/v1.ogv#t=50,60”/>     <video src=“http://sample.org/v1.ogv#t=60,70”/>     <a href=“http://sample-news.org”>      <videosrc=“http://sample.org/v1.ogv#t=70,80”/>     </a>    </x:videos>   </body>  </html>
FIG. 1 shows a playback order of the fragment videos. The web browser downloads the fragment videos from the server, and sequentially plays them back as one collection of videos, as shown in FIG. 1.
In the above HTML description example, the fragment videos are individually described even if they have the same video resource. That is, fragment descriptions #10,20, #50,60, and #60,70 are designated for the video v1.ogv. To obtain the fragment videos of the video v1.ogv, therefore, the client transmits an HTTP request to the server three times, and the server also transmits a response to the client three times.
Every time the server receives a request, it needs to appropriately decode the same video according to a codec, and extract a fragment video designated in a Range header. If a collection of videos includes a large number of fragment references which refer to the same video resource, it takes a long time to obtain the fragment videos, thereby causing a time lag in playback of the collection of videos.